Cryptography involves an encryption process for encoding the contents of a plaintext on a stream, block or unit basis to yield a ciphertext that conceals the contents of the plaintext, and a decryption process for decoding the ciphertext on a stream, block or unit basis to retrieve the contents of the plaintext. The method of encryption and decryption is called a cipher, which typically use one or more keys to control the encryption of the plaintext and the decryption of the ciphertext. There are threes (3) classes of key-based cipher methods.
The first class is symmetric key-based cipher methods that are based on using a secret key or a key randomly derived from the secret key for both encryption and decryption, or using the secret key or the key randomly derived from the secret key for both encryption only while deriving the decryption key from the encryption key. Some well known symmetric key-based cipher methods are Data Encryption Standard (“DES”), Advanced Encryption Standard (“AES”), the One-Time Pad (“OTP”), Blowfish, IDEA and RC4.
The second class is asymmetric key-based cipher methods that are based on using a different key for encryption and decryption where the decryption key (a.k.a. the “private key”) cannot be derived from the encryption key (a.k.a. the “public key)”. Some well known asymmetric key-based cipher methods are Rivest-Shamir-Adleman (“RSA”) and Rabin.
The third class is hybrid key-based cipher methods that are based on using an asymmetric public-key to derive a symmetric key for both encryption and decryption, or a symmetric key for encryption while deriving the decryption key from the symmetric key.
Cryptanalysis involves a decoding, without any knowledge of the appropriate key(s), of a ciphertext on a stream basis or a block basis to retrieve the contents of a corresponding plaintext. Some well known cryptanalysis techniques are brute force attacks, ciphertext-only attacks, known-plaintext attacks, chosen-plaintext attacks, man-in-the-middle attacks, key-output correlation attacks, attacks against the underlying hardware, and attacks using faults in the underlying software and/or hardware.
Cryptography deals with all aspects of secure messaging, authentication, digital signatures, electronic money, and other well-known applications. Furthermore, most cryptographic algorithms are designed to be executed by computers and by specialized hardware devices. Thus, the computer industry is continually striving to design computer software and specialized hardware devices that minimize, if not eliminate, any cryptanalysis attack on the computer software and/or its underlying computer hardware, and on specialized hardware devices.